/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package estrategias.jigsawASHYI.General;

import co.edu.javeriana.ayllu.agents.communitymanageragent.CommunityManagerAgentState;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import persistencia.GrupoPreguntas;
import persistencia.Tema;

/**
 *
 * @author yolima
 */
public class Estado_JigsawASHYI extends CommunityManagerAgentState{
    public static final int INICIAL = 0;
    public static final int INVOCAR_MATEO_GB = 1;//Organización de equipos base 
    public static final int INVOCAR_MATEO_GT = 2;//Organización de equipos temáticos
    public static final int ASIGNAR_TEMAS = 3;
    public static final int DAR_INSTRUCCIONES = 4;
    public static final int RECUPERAR_INFORMACION = 5;
    public static final int DISCUSION_TEMATICA = 6;
    public static final int GENERAR_INFORME_TEMA = 7;
    public static final int DISCUSION_GRUPO = 8;
    public static final int GENERAR_INFORME_GRUPO = 9;
    public static final int FINAL = 10; 
   
    
    private int totalEstudiantes;
    private int estadoEstrategia;
    private int numeroGruposBase;
    private int numeroGruposTema;    
    private int numeroAprendicesQueEstudiaron;
    private int numeroGruposQueEntregaronInforme;
    private int numeroGruposQuePresentaronTema;
    private int numeroAprendicesQueEntendieronLaPresentacionTemas;
    private int numeroTemasEvaluados;
    private int numeroSecretarios;
    private int numeroPresentadores;
    private int numeroGruposPorTema;
    private int numeroGruposPreguntasTema;
    private int numeroGruposPreguntasGrupo;
    
    
    private ArrayList<ArrayList<String>> gruposBase;
    private ArrayList<ArrayList<String>> rolesPorGrupoBase;
    private ArrayList<ArrayList<String>> gruposTema;
    private ArrayList<ArrayList<String>> rolesPorGrupoTema;
    private ArrayList<Tema> temas;
    private HashMap<Tema, List<GrupoPreguntas>> gruposPreguntasPorTema;
        
    private List<String> identificadoresAprendices;
    private List<String> identificadoresAprendicesQueAceptaronTema;
    private List<String> identificadoresAprendicesQueAceptaronPreguntas;
    private List<String> identificadoresAprendicesQueEstudiaron;
    private List<String> identificadoresGruposQueEntregaronInforme;
    private List<String> identificadoresGruposQuePresentaronTema;
    private List<String> identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas;
      
    private List<String> identificadoresCMASQueHanAsignadoTemas;
    private List<String> identificadoresCMASQueHanAsignadoPreguntas;
    private List<String> identificadoresSecretariosConOAFinalPublicada;
    
    private HashMap<String, Tema> temasPorEstudiante;
    private HashMap<String, GrupoPreguntas> gruposPreguntasPorEstudiante;
    private HashMap<String, Object> oaPorEstudiante;
    private HashMap<Tema, Object> oaPorTema;


    public Estado_JigsawASHYI() {
        super(null, null);
        this.estadoEstrategia = INICIAL;
        numeroGruposBase=0;
        numeroAprendicesQueEstudiaron = 0;
        numeroGruposQueEntregaronInforme = 0;
        numeroGruposQuePresentaronTema = 0;
        numeroAprendicesQueEntendieronLaPresentacionTemas = 0;
        numeroTemasEvaluados = 0;
        numeroGruposTema = 0;
        numeroSecretarios = 0;
        numeroPresentadores = 0;
        numeroGruposPorTema = 0;
        numeroGruposPreguntasTema = 0;
        numeroGruposPreguntasGrupo = 0;
        
        gruposBase = new ArrayList<ArrayList<String>>();
        rolesPorGrupoBase = new ArrayList<ArrayList<String>>();
        gruposTema = new ArrayList<ArrayList<String>>();
        rolesPorGrupoTema = new ArrayList<ArrayList<String>>();
        temas = new ArrayList<Tema>();
        gruposPreguntasPorTema = new HashMap<Tema, List<GrupoPreguntas>>();
        
        identificadoresAprendices = new ArrayList<String>();
        identificadoresAprendicesQueAceptaronTema = new ArrayList<String>();
        identificadoresAprendicesQueAceptaronPreguntas = new ArrayList<String>();
        identificadoresAprendicesQueEstudiaron = new ArrayList<String>();
        identificadoresGruposQueEntregaronInforme = new ArrayList<String>();
        identificadoresGruposQuePresentaronTema = new ArrayList<String>();
        identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas = new ArrayList<String>();
        identificadoresCMASQueHanAsignadoTemas = new ArrayList<String>();
        identificadoresCMASQueHanAsignadoPreguntas = new ArrayList<String>();
        identificadoresSecretariosConOAFinalPublicada = new ArrayList<String>();
         
         temasPorEstudiante = new HashMap<String, Tema>();
        gruposPreguntasPorEstudiante = new HashMap<String, GrupoPreguntas>();
        oaPorEstudiante = new HashMap<String, Object>();
        oaPorTema = new HashMap<Tema, Object>();
        this.setCourseID("SIST_INT");
    }

    public HashMap<String, GrupoPreguntas> getGruposPreguntasPorEstudiante() {
        return gruposPreguntasPorEstudiante;
    }

    public void setGruposPreguntasPorEstudiante(HashMap<String, GrupoPreguntas> gruposPreguntasPorEstudiante) {
        this.gruposPreguntasPorEstudiante = gruposPreguntasPorEstudiante;
    }

    public int getNumeroGruposPorTema() {
        return numeroGruposPorTema;
    }

    public void setNumeroGruposPorTema(int numeroGruposPorTema) {
        this.numeroGruposPorTema = numeroGruposPorTema;
    }

    public int getNumeroPresentadores() {
        return numeroPresentadores;
    }

    public void setNumeroPresentadores(int numeroPresentadores) {
        this.numeroPresentadores = numeroPresentadores;
    }

    public int getNumeroSecretarios() {
        return numeroSecretarios;
    }

    public void setNumeroSecretarios(int numeroSecretarios) {
        this.numeroSecretarios = numeroSecretarios;
    }

    public HashMap<String, Object> getOaPorEstudiante() {
        return oaPorEstudiante;
    }

    public void setOaPorEstudiante(HashMap<String, Object> oaPorEstudiante) {
        this.oaPorEstudiante = oaPorEstudiante;
    }

    public HashMap<Tema, Object> getOaPorTema() {
        return oaPorTema;
    }

    public void setOaPorTema(HashMap<Tema, Object> oaPorTema) {
        this.oaPorTema = oaPorTema;
    }

    public HashMap<String, Tema> getTemasPorEstudiante() {
        return temasPorEstudiante;
    }

    public void setTemasPorEstudiante(HashMap<String, Tema> temasPorEstudiante) {
        this.temasPorEstudiante = temasPorEstudiante;
    }

    
    public ArrayList<ArrayList<String>> getGruposBase() {
        return gruposBase;
    }

    public void setGruposBase(ArrayList<ArrayList<String>> gruposBase) {
        this.gruposBase = gruposBase;
    }

    public int getNumeroAprendicesQueEstudiaron() {
        return numeroAprendicesQueEstudiaron;
    }

    public void setNumeroAprendicesQueEstudiaron(int numeroAprendicesQueEstudiaron) {
        this.numeroAprendicesQueEstudiaron = numeroAprendicesQueEstudiaron;
    }

    public int getNumeroGruposBase() {
        return numeroGruposBase;
    }

    public void setNumeroGruposBase(int numeroGruposBase) {
        this.numeroGruposBase = numeroGruposBase;
    }

    public ArrayList<ArrayList<String>> getRolesPorGrupoBase() {
        return rolesPorGrupoBase;
    }

    public void setRolesPorGrupoBase(ArrayList<ArrayList<String>> rolesPorGrupoBase) {
        this.rolesPorGrupoBase = rolesPorGrupoBase;
    }

    public HashMap<Tema, List<GrupoPreguntas>> getGruposPreguntasPorTema() {
        return gruposPreguntasPorTema;
    }

    public void setGruposPreguntasPorTema(HashMap<Tema, List<GrupoPreguntas>> gruposPreguntasPorTema) {
        this.gruposPreguntasPorTema = gruposPreguntasPorTema;
    }

    public ArrayList<Tema> getTemas() {
        return temas;
    }

    public void setTemas(ArrayList<Tema> temas) {
        this.temas = temas;
    }
    
    
    
    /**
     * @return the numeroAprendicesQueEstudiaron
     */

    public int getNumeroAprendicesQueConsultaron() {
        return numeroAprendicesQueEstudiaron;
    }
    
    /**
     * @param the numeroAprendicesQueEstudiaron
     */
    
    public void setNumeroAprendicesQueConsultaron(int numeroAprendicesQueConsultaron) {
        this.numeroAprendicesQueEstudiaron = numeroAprendicesQueConsultaron;
    }

    /**
     * @return the numeroGruposBase
     */
    
    public int getNumeroGruposCreados() {
        return numeroGruposBase;
    }
    
    /**
     * @param the numeroGruposBase
     */

    public void setNumeroGruposCreados(int numeroGruposCreados) {
        this.numeroGruposBase = numeroGruposCreados;
    }    
    
    /**
     * @return the estadoEstrategia
     */
    
    public void setEstadoEstrategia(int estadoEstartegia) {
        this.estadoEstrategia = estadoEstartegia;
    }

    /**
     * @param the estadoEstrategia
     */
    
    public int getEstadoEstartegia() {
        return estadoEstrategia;
    }

    /**
     * @return the identificadoresAprendicesConTemaLeido
     */
    public List<String> getIdentificadoresAprendicesConTemaLeido() {
        return identificadoresAprendicesQueEstudiaron;
    }

    /**
     * @param identificadoresAprendicesConTemaLeido the identificadoresAprendicesConTemaLeido to set
     */
    public void setIdentificadoresAprendicesConTemaLeido(List<String> identificadoresAprendicesConTemaLeido) {
        this.identificadoresAprendicesQueEstudiaron = identificadoresAprendicesConTemaLeido;
    }
    
    public int getTotalEstudiantes() {
        return totalEstudiantes;
    }

    public void setTotalEstudiantes(int totalEstudiantes) {
        this.totalEstudiantes = totalEstudiantes;
    }

    /**
     * @return the numeroGruposQueEntregaronInforme
     */
    public int getNumeroGruposQueEntregaronInforme() {
        return numeroGruposQueEntregaronInforme;
    }

    /**
     * @param numeroGruposQueEntregaronInforme the numeroGruposQueEntregaronInforme to set
     */
    public void setNumeroGruposQueEntregaronInforme(int numeroGruposQueEntregaronInforme) {
        this.numeroGruposQueEntregaronInforme = numeroGruposQueEntregaronInforme;
    }

    /**
     * @return the numeroGruposQuePresentaronTema
     */
    public int getNumeroGruposQuePresentaronTema() {
        return numeroGruposQuePresentaronTema;
    }

    /**
     * @param numeroGruposQuePresentaronTema the numeroGruposQuePresentaronTema to set
     */
    public void setNumeroGruposQuePresentaronTema(int numeroGruposQuePresentaronTema) {
        this.numeroGruposQuePresentaronTema = numeroGruposQuePresentaronTema;
    }

    /**
     * @return the numeroAprendicesQueEntendieronLaPresentacionTemas
     */
    public int getNumeroAprendicesQueEntendieronLaPresentacionTemas() {
        return numeroAprendicesQueEntendieronLaPresentacionTemas;
    }

    /**
     * @param numeroAprendicesQueEntendieronLaPresentacionTemas the numeroAprendicesQueEntendieronLaPresentacionTemas to set
     */
    public void setNumeroAprendicesQueEntendieronLaPresentacionTemas(int numeroAprendicesQueEntendieronLaPresentacionTemas) {
        this.numeroAprendicesQueEntendieronLaPresentacionTemas = numeroAprendicesQueEntendieronLaPresentacionTemas;
    }

    /**
     * @return the numeroTemasEvaluados
     */
    public int getNumeroTemasEvaluados() {
        return numeroTemasEvaluados;
    }

    /**
     * @param numeroTemasEvaluados the numeroTemasEvaluados to set
     */
    public void setNumeroTemasEvaluados(int numeroTemasEvaluados) {
        this.numeroTemasEvaluados = numeroTemasEvaluados;
    }

    /**
     * @return the identificadoresGruposQueEntregaronInforme
     */
    public List<String> getIdentificadoresGruposQueEntregaronInforme() {
        return identificadoresGruposQueEntregaronInforme;
    }

    /**
     * @param identificadoresGruposQueEntregaronInforme the identificadoresGruposQueEntregaronInforme to set
     */
    public void setIdentificadoresGruposQueEntregaronInforme(List<String> identificadoresGruposQueEntregaronInforme) {
        this.identificadoresGruposQueEntregaronInforme = identificadoresGruposQueEntregaronInforme;
    }

    /**
     * @return the identificadoresGruposQuePresentaronTema
     */
    public List<String> getIdentificadoresGruposQuePresentaronTema() {
        return identificadoresGruposQuePresentaronTema;
    }

    /**
     * @param identificadoresGruposQuePresentaronTema the identificadoresGruposQuePresentaronTema to set
     */
    public void setIdentificadoresGruposQuePresentaronTema(List<String> identificadoresGruposQuePresentaronTema) {
        this.identificadoresGruposQuePresentaronTema = identificadoresGruposQuePresentaronTema;
    }

    /**
     * @return the identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas
     */
    public List<String> getIdentificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas() {
        return identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas;
    }

    /**
     * @param identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas the identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas to set
     */
    public void setIdentificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas(List<String> identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas) {
        this.identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas = identificadoresAprendicesAprendicesQueEntendieronLaPresentacionTemas;
    }

    /**
     * @return the identificadoresAprendices
     */
    public List<String> getIdentificadoresAprendices() {
        return identificadoresAprendices;
    }

    /**
     * @param identificadoresAprendices the identificadoresAprendices to set
     */
    public void setIdentificadoresAprendices(List<String> identificadoresAprendices) {
        this.identificadoresAprendices = identificadoresAprendices;
    }


    /**
     * @return the identificadoresAprendicesQueAceptaronTema
     */
    public List<String> getIdentificadoresAprendicesQueAceptaronTema() {
        return identificadoresAprendicesQueAceptaronTema;
    }

    /**
     * @param identificadoresAprendicesQueAceptaronTema the identificadoresAprendicesQueAceptaronTema to set
     */
    public void setIdentificadoresAprendicesQueAceptaronTema(List<String> identificadoresAprendicesQueAceptaronTema) {
        this.identificadoresAprendicesQueAceptaronTema = identificadoresAprendicesQueAceptaronTema;
    }

    /**
     * @return the identificadoresSecretariosQueHanAsignadoTemas
     */
    public List<String> getIdentificadoresCMASQueHanAsignadoTemas() {
        return identificadoresCMASQueHanAsignadoTemas;
    }

    /**
     * @param identificadoresSecretariosQueHanAsignadoTemas the identificadoresSecretariosQueHanAsignadoTemas to set
     */
    public void setIdentificadoresCMASQueHanAsignadoTemas(List<String> identificadoresSecretariosQueHanAsignadoTemas) {
        this.identificadoresCMASQueHanAsignadoTemas = identificadoresSecretariosQueHanAsignadoTemas;
    }

    /**
     * @return the identificadoresSecretariosConOAFinalPublicada
     */
    public List<String> getIdentificadoresSecretariosConOAFinalPublicada() {
        return identificadoresSecretariosConOAFinalPublicada;
    }

    /**
     * @param identificadoresSecretariosConOAFinalPublicada the identificadoresSecretariosConOAFinalPublicada to set
     */
    public void setIdentificadoresSecretariosConOAFinalPublicada(List<String> identificadoresSecretariosConOAFinalPublicada) {
        this.identificadoresSecretariosConOAFinalPublicada = identificadoresSecretariosConOAFinalPublicada;
    }

    /**
     * @return the identificadoresAprendicesQueAceptaronPreguntas
     */
    public List<String> getIdentificadoresAprendicesQueAceptaronPreguntas() {
        return identificadoresAprendicesQueAceptaronPreguntas;
    }

    /**
     * @param identificadoresAprendicesQueAceptaronPreguntas the identificadoresAprendicesQueAceptaronPreguntas to set
     */
    public void setIdentificadoresAprendicesQueAceptaronPreguntas(List<String> identificadoresAprendicesQueAceptaronPreguntas) {
        this.identificadoresAprendicesQueAceptaronPreguntas = identificadoresAprendicesQueAceptaronPreguntas;
    }

    /**
     * @return the identificadoresCMASQueHanAsignadoPreguntas
     */
    public List<String> getIdentificadoresCMASQueHanAsignadoPreguntas() {
        return identificadoresCMASQueHanAsignadoPreguntas;
    }

    /**
     * @param identificadoresCMASQueHanAsignadoPreguntas the identificadoresCMASQueHanAsignadoPreguntas to set
     */
    public void setIdentificadoresCMASQueHanAsignadoPreguntas(List<String> identificadoresCMASQueHanAsignadoPreguntas) {
        this.identificadoresCMASQueHanAsignadoPreguntas = identificadoresCMASQueHanAsignadoPreguntas;
    }

    /**
     * @return the numeroGruposPorTema
     */
    public int getNumeroGruposTema() {
        return numeroGruposTema;
    }

    /**
     * @param numeroGruposPorTema the numeroGruposPorTema to set
     */
    public void setNumeroGruposTema(int numeroGruposPorTema) {
        this.numeroGruposTema = numeroGruposPorTema;
    }

    public List<String> getIdentificadoresAprendicesQueEstudiaron() {
        return identificadoresAprendicesQueEstudiaron;
    }

    public void setIdentificadoresAprendicesQueEstudiaron(List<String> identificadoresAprendicesQueEstudiaron) {
        this.identificadoresAprendicesQueEstudiaron = identificadoresAprendicesQueEstudiaron;
    }

    public ArrayList<ArrayList<String>> getGruposTema() {
        return gruposTema;
    }

    public void setGruposTema(ArrayList<ArrayList<String>> gruposTema) {
        this.gruposTema = gruposTema;
    }

    public ArrayList<ArrayList<String>> getRolesPorGrupoTema() {
        return rolesPorGrupoTema;
    }

    public void setRolesPorGrupoTema(ArrayList<ArrayList<String>> rolesPorGrupoTema) {
        this.rolesPorGrupoTema = rolesPorGrupoTema;
    }

    public int getNumeroGruposPreguntasGrupo() {
        return numeroGruposPreguntasGrupo;
    }

    public void setNumeroGruposPreguntasGrupo(int numeroGruposPreguntasGrupo) {
        this.numeroGruposPreguntasGrupo = numeroGruposPreguntasGrupo;
    }

    public int getNumeroGruposPreguntasTema() {
        return numeroGruposPreguntasTema;
    }

    public void setNumeroGruposPreguntasTema(int numeroGruposPreguntasTema) {
        this.numeroGruposPreguntasTema = numeroGruposPreguntasTema;
    }
    
}
